Ausdrücke in ST
Ein Ausdruck ist ein Sprachkonstrukt, das aus einer definierten Kombination von Operanden (z.B. →Literale, →Variablen, →Aufrufe) und Operatoren (z.B. +, -, *, /
) besteht und einen Wert eines bestimmten Datentyps ergibt.
Neuron Power Engineer wendet die folgenden Regeln zur Auswertung von Ausdrücken an:
-
Die Rangfolge des Operators bestimmt die Reihenfolge, in der die Operationen angewendet werden: Der Operator mit der höchsten Rangfolge in einem Ausdruck wird zuerst angewendet, dann der mit der nächst-niedrigeren Rangfolge usw., bis der Ausdruck ausgewertet ist. Bei gleichwertigen Operatoren wird von links nach rechts ausgewertet.
Beispiel: FallsA
,B
,C
dieINT
-Werte1
,2
bzw.4
haben, wird der AusdruckA+B-C*(C / B)
so ausgewertet:-
Die Klammerung
(C / B)
wird aufgrund der höchsten Rangfolge zuerst ausgewertet: Sie entspricht(4 / 2)
und liefert den Wert2
. -
Die Multiplikation
C*(2)
wird aufgrund der nächst-niedrigeren Rangfolge ausgewertet: Sie entspricht4*(2)
und liefert den Wert8
. -
Die Addition
A+B
und SubtraktionB-8
sind gleichwertige Operatoren. Da die Addition links von der Subtraktion steht, wird zuerst die Addition angewendet. Die Addition entspricht1+2
und liefert den Wert3
. -
Zuletzt wird die Subtraktion
3-8
angewendet: Somit hat der Ausdruck den Wert-5
.
-
-
Falls ein Ausdruck zwei Operanden enthält, wird der ganz linke Operand zuerst ausgewertet.
Beispiel: Für den AusdruckEQ(A,B)=AND(A,B)
wird der Aufruf desEQ
-BausteinsEQ(A,B)
zuerst ausgewertet, dann der Aufruf desAND
-BausteinsAND(A,B)
und zuletzt wird die Gleichheits-Operation (aufgrund Operator=
) ausgewertet. -
→Boolesche Ausdrücke werden nur so weit ausgewertet, wie dies für die Auswertung des Ergebnisses inkl. evtl. Nebeneffekte erforderlich ist.
Beispiel: SofernA<=B
, ist für den Ausdruck(A>B)&(C<D)
die Auswertung von(A>B)
bereits ausreichend, damit feststeht, dass das Ergebnis des Ausdrucks der WertFALSE
(oder eine Entsprechung) ist. -
Ausdrücke ohne einen konkreten Datentyp werden typisiert. Erläuterungen dazu finden Sie unter "Typisierung von Ausdrücken".
Keine Erkennung von mathematischen Fehlern Falls Sie Ausdrücke in Neuron Power Engineer zuweisen, ist es möglich, dass mathematische Fehler nicht erkannt und gemeldet werden.
Zusätzliche Information: Werden →konstante Ausdrücke bei der Initialisierung von Variablen verwendet, werden keine Fehler mehr erkannt. Abhilfe: Prüfen Sie mit geeigneten Werkzeugen, ob der angegebene Ausdruck mathematisch ausgewertet werden kann. |
Vermeiden Sie die Verwendung von Ausdrücken mit über 20 Operanden/Operatoren, um erhebliche Performance-Einbußen beim Speichern oder beim Importieren zu vermeiden. |